// createRouter 导入路由模块
// createWebHistory 导入 createWebHistory 路由历史记录模块
// createWebHashHistory 导入 createWebHashHistory 路由历史记录模块
import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/stores/modules/user'

const router = createRouter({
  // 路由模式为 history 模式
  // import.meta.env.BASE_URL 动态获取当前s项目的根路径
  // 在 vite.config.js 中配置的根地址
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    // 配置一级路由
    // 登录页面
    { path: '/login', component: () => import('@/views/login/LoginPage.vue') },

    // 页面布局架子
    {
      path: '/',
      component: () => import('@/views/layout/LayoutContainer.vue'),
      redirect: '/article/manage',

      // 二级路由
      children: [
        {
          path: 'article/manage',
          component: () => import('@/views/article/ArticleManage.vue')
        },
        {
          path: 'article/channel',
          component: () => import('@/views/article/ArticleChannel.vue')
        },
        {
          path: 'user/profile',
          component: () => import('@/views/user/UserProfile.vue')
        },
        {
          path: 'user/avatar',
          component: () => import('@/views/user/UserAvatar.vue')
        },
        {
          path: 'user/password',
          component: () => import('@/views/user/UserPassword.vue')
        }
      ]
    }
  ]
})

// 登录访问拦截
// to 代表要访问的路由对象
// from 代表从哪个路由跳转过来的
// return 代表是否允许访问
// 如果用户没有登录，且要访问的路由不是登录页面，则跳转到登录页面
// 如果不设置默认登录
router.beforeEach((to) => {
  const userStore = useUserStore()
  if (!userStore.token && to.path !== '/login') return '/login'
})

export default router
